﻿var arrFlag = new Array();
function Validation(formName) {
    //Quy định lại tên đối tượng hiển thị
    $requiredTest = $(formName).find('.required');
    $spacingTest = $(formName).find('.spacing');
    $emailTest = $(formName).find('.email');
    $passwordTest = $(formName).find('.re-password');

    //Cài đặt sự kiện change cho input
    //Bắt buộc nhập
    $requiredTest.on('change', function () {
        testRequired(this);
    });
    //Không cho phép khoảng trắng
    $spacingTest.on('change', function () {
        testSpacing(this);
    });
    //Kiểm tra email
    $emailTest.on('change', function () {
        testEmail(this);
    });
    //Kiểm tra password
    $passwordTest.on('change', function () {
        testPassword(this);
    });

    //Cài đặt sự kiện submit cho form
    $(formName).on('submit', function (e) {        
        //Bắt lỗi khi các trường bị bỏ trống
        $('.required').each(function () {
            if ($(this).val() == '') {
                $(this).after('<div class="alert">Không được bỏ trống</div>');
            }
        });
        $('.bat-buoc-chon').each(function () {            
            if ($(this)[0].selectedIndex == 0) {
                $(this).after('<div class="alert">Vui lòng chọn một giá trị</div>');
            }
            else {
                $(this).siblings('.alert').remove();
            }
        });        
        //chặn submit khi có thông báo lỗi ở mỗi trường
        if ($('.alert').length != 0) {            
            e.preventDefault();
        }

    });

    //Cài đặt sự kiện cho nút Reset
    $(':reset').on('click', function () {
        $('.alert').remove();
    });
}

/* Các hàm validation */
function testRequired(obj) {
    if ($(obj).val() == '') {
        $(obj).after('<div class="alert">Không được bỏ trống</div>');
    } else {
        $(obj).siblings('.alert').remove();
    }
}

function testSpacing(obj) {
    $patt = /\s/;
    $text = $(obj).val();

    if ($text = '') {
        if ($patt.test($text)) {
            $(obj).after('<div class="alert">Không cho phép khoảng trắng</div>');
        } else {
            $(obj).siblings('.alert').remove();
        }
    }
}

function testEmail(obj) {
    $patt = /^(([^<>()[\]\\.,;:\s@\']+(\.[^<>()[\]\\.,;:\s@\']+)*)|(\'.+\'))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    $text = $(obj).val();

    if ($text = '') {
        if ($patt.test($text) == false) {
            $(obj).after('<div class="alert">Email chưa hợp lệ</div>');
        } else {
            $(obj).siblings('.alert').remove();
        }
    }
}

function testPassword(obj) {
    var str = obj.id;
    if (str.search('NhapLai') == -1) {
        var idxx = '#' + str;
        var idNhapLaixx = '#NhapLai' + str;
    }
    else {
        var idxx = '#' + str.substr(7, str.length);
        var idNhapLaixx = '#' + obj.id;
    }

    if ($(idxx).val() = $(idNhapLaixx).val()) {
        $(idNhapLaixx).after('<div class="alert">Mật khẩu chưa khớp</div>');
    } else {
        $(idNhapLaixx).siblings('.alert').remove();
    }
}
/* -------------------------------------------------------------- */
$(function () {
    Validation('#frmTaoKhoaHoc');
});